EE263 Homework 6
课程主页:https://see.stanford.edu/Course/EE263
这次回顾EE263作业6。
9.9
(a)
递推
得到
所以收敛情形和$A$的特征值有关。
当$\gamma =3$时,特征值的绝对值都小于$1$,所以无条件收敛;当$\gamma= 5$时,有一个特征值的绝对值大于$1$,所以可能会发散。
计算代码如下:
import numpy as np
A = np.array([
[0, 0.2, 0.1],
[0.05, 0, 0.05],
[0.1, 1/30, 0]])
res = np.linalg.eigvals(A)
#gamma=3
print(res * 1.2 * 3)
#gamma=5
print(res * 1.2 * 5)
[ 0.60848571 -0.36 -0.24848571]
[ 1.01414284 -0.6 -0.41414284]
(b)回顾
假设$\Lambda^{-1} G -I_n$的特征值为$\lambda_i$,那么$A$的特征值为$\alpha \gamma \lambda_i $,记绝对值最大的$\lambda_i $为$\lambda_{\max}$,由之前讨论可得,
10.5
(a)设$\lambda_ i $对应的特征向量为$v_i$,那么
因此
所以$e^{A}$的特征值为$\lambda_i $
(b)由(a)可得
10.6
方程的解为
通过程序计算得到$e^A,e^{2A}$:
A = np.array([
[0.5, 1.4],
[-0.7, 0.5]])
print(expm(A))
[[ 0.90470626 1.94925032]
[-0.97462516 0.90470626]]
print(expm(2 * A))
[[-1.081295 3.52699794]
[-1.76349897 -1.081295 ]]
假设
那么由条件可得
目标是判断以下两个式子的符号
通过画图不难得出
10.8
(a)
(b)
(c)$\forall \lambda_i$对应的特征向量$v_i $,那么
(d)
10.14
(a)计算特征值即可
% (a)
eig(A)
ans =
-0.1000 + 5.0000i
-0.1000 - 5.0000i
-0.1500 + 7.0000i
-0.1500 - 7.0000i
因为实部都是负数,所以稳定
(b)
%(b)
sys = ss(A, [], [], []);
x0 = [1; 1; 1; 1];
[y,t,x] = initial(sys, x0);
for i = 1: 4
figure(i);
plot(x(:, i));
end
x0 = rand(4, 1);
[y,t,x] = initial(sys, x0);
for i = 1: 4
figure(i + 4);
plot(x(:, i));
end
(c)
%(c)
expm(15 * A)
ans =
0.2032 -0.0068 -0.0552 -0.0708
0.0340 0.0005 -0.0535 0.1069
0.0173 0.1227 0.0270 0.0616
0.0815 0.0186 0.1151 0.1298
(d)
%(d)
expm(- 20 * A)
ans =
6.2557 3.3818 1.7034 2.2064
-2.1630 -2.8107 -14.2950 12.1503
-3.3972 17.3931 -1.6257 -2.8004
-1.7269 -6.5353 10.7081 2.9736
(e)$Z$的元素较小,$Y$的元素较大
(f)使用下式子计算即可
对应代码为
%(e)
x10 = [1; 1; 1; 1];
expm(10 * A) \ x10
ans =
3.9961
1.0650
3.8114
1.7021
11.3
假设$A$可对角化,即
那么
11.6a
转移规则对应的矩阵为
记$B^{(k)}=A^k$,那么$B^{(k)}_{ij}$表示以$j$开头,$i$结尾的长度为$k+1$的语言数量,所以
接着计算$A^k$即可,注意此时$A$的特征值不相同,所以$A$相似于对角阵,即
那么
假设$\lambda_1 =\max \{|\lambda_i|\}$,那么
因此
利用计算机得到结果为
0.8113704627516485
对应代码为
import numpy as np
A = np.array([
[0, 0, 1, 0, 1],
[1, 1, 0, 1, 0],
[1, 0, 0, 0, 1],
[0, 0, 0, 1, 0],
[0, 1, 0, 1, 0]], dtype=np.float64)
res = np.linalg.eigvals(A)
print(np.log2(np.max(np.abs(res))))
对于需要比较的情形,此时
注意到
因此
因此
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere